package com.hsnn.medstgmini.pro.project.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.hsnn.medstgmini.pro.project.model.ContractModel;
import com.hsnn.medstgmini.pro.project.model.ContractModelLog;
import com.hsnn.medstgmini.util.Pagination;

public interface ContractModelManager {

	/**
	 * @category 获取合同模板列表页
	 * @author zhouqi
	 * @date 2015年9月8日10:08:08
	 * @return Pagination
	 */
	public Pagination getContractModelListPage(Pagination page);
	
	/**
	 * @category 通过id获取合同模板
	 * @author zhouqi
	 * @date 2015年9月8日10:08:08
	 * @param id
	 * @return Pagination
	 */
	public ContractModel getContractModelById(String id);
	
	/**
	 * @category 保存或修改合同模板
	 * @author zhouqi
	 * @date 2015年9月8日10:08:08
	 * @param type 操作类型，修改或添加
	 * @param contractModel
	 * @return Boolean
	 */
	public Boolean saveOrUpdateContractModel(Integer type, ContractModel contractModel);
	
	/**
	 * @category 获取合同模板页日志列表
	 * @author zhouqi
	 * @date 2015年9月8日10:08:08
	 * @return Pagination
	 */
	public Pagination getContractModelLogListPage(Pagination page);
	
	/**
	 * @category 保存或修改合同模板
	 * @author zhouqi
	 * @date 2015年9月8日10:08:08
	 * @param contractModelLog
	 * @param type 操作类型，修改或添加
	 * @return Boolean
	 */
	public Boolean saveOrUpdateContractModelLog(Integer type, ContractModelLog contractModelLog);
	
	/**
	 * @category 写日志
	 * @author 周奇
	 * @date 2015年9月8日19:58:31
	 * @param contractModels
	 */
	public void writeLog(ContractModel contractModel);
	
	/**
	 * @category 获取修改前后对比
	 * @author zhouqi
	 * @date 2015年9月9日08:49:26
	 * @param contractModelId
	 * @param updDateTime
	 * @return List<ContractModelLog>
	 */
	List<ContractModelLog> getCompareContactModelLogList(
			String contractModelId, String updDateTime);
	
	/**
	 * @category 生成PDF版合同
	 * @author zhouqi
	 * @date 2015年9月15日16:28:44
	 * @param content
	 * @param url
	 * @return void
	 */
	public void geneContractModelPDF(String fontPath,String content, String pdfurl);
	
	/**
	 * @category 生成swf版合同
	 * @author zhouqi
	 * @date 2015年9月15日16:28:44
	 * @param content
	 * @param url
	 * @return void
	 */
	public void geneContractModelSWF(String pdfToosURL,String pdfURL,String swfURL);
    
	
	/**
	 * @category 获取模板code
	 * @author zhouqi
	 * @param void
	 * @return String 
	 */
	String getContractModelCode();
    
	/**
	 * @category 生成pdf和swf
	 * @author zhouqi
	 * @date 2015年9月16日09:25:28
	 * @param contracModel
	 * @param name
	 * @return void
	 */
	ContractModel genePdfAndSwf(ContractModel contracModel,
			HttpServletRequest request);
	
}
